第四個範例跟機器視覺與影像辨識有關, 我們先來了解一下什麼是機器視覺.
機器視覺想要做的事情是模仿人類的視覺能力, 讓機器也能夠了解影片或圖中的內容, 例如機器能夠知道影片或圖片中有沒有某種特定的物體.
規則式判斷
機器視覺的應用很早就開始, 例如工廠將機器視覺應用在瑕疵檢測
, 以自動化的方式取代(或輔助)人工檢測.當時的應用以規則式(rule-based)為主, 也就是必需告訴電腦如何判斷不同種類的規則內容, 這樣電腦在取得影像之後就能協助判斷規則是否成立, 達到自動檢測的效果.
以影像的實作面來說, 最常使用的是OpenCV. OpenCV是Intel所開發並開源的專案, 專門用來處理影像或圖檔, 例如圖檔的平移
、旋轉
、水平翻轉
、影像縮放
、裁剪
、亮暗調整
、影像膨脹
、侵蝕
與透視轉換
等功能.
但以規則式(rule-based)的方式執行影像處理, 只能處理規則有寫到的狀況, 若遇到新的狀況則需要以人工的方式調整規則之後才能處理新的狀況.
類神經網路
近年來, 隨著機器學習在影像處理的能力有著顯著的增長, 尤其是卷積神經網路(CNN)很適合處理影像領域的資料, 因此影像辨識
成為機器學習很熱門的領域.
在影像辨識應用中可分為下列四類
OpenCV與類神經網路的關係.
雖然OpenCV的規則式判斷方法較不具彈性, 但OpenCV的強項是圖檔的處理. 因此現在一般在做影像處理時, 仍然會套用OpenCV的套件來處理圖檔, 然後再以CNN進行模型的訓練, 兩者是相輔相成的關係.
在處理機器視覺
任務時, 以目前影像辨識的處理方式(也是Nilvana的方式)通常會包含下列流程:
下一篇我們將使用nilvana執行第一個步驟取得影像或圖檔
.